package com.bestcem.xm.member.controller.param;

import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Getter;
import lombok.Setter;

import javax.validation.Valid;
import java.util.List;

/**
 * 联系人参数 父类
 *
 * @author yf.wang <yf.wang@idiaoyan.com>
 * @version V1.0
 * @date 2021/7/19
 */

@Getter
@Setter
public class HttpMemberBaseParam {

    private String avator;

    private String orgId;

    private String sysId;

    private String source;

    private String name;

    private String email;

    private String mobile;

    private String gender;

    private String nickname;

    private String region;

    private String store;

    private Integer status;

    private String content;

    @JsonProperty(value = "openid")
    @JSONField(name = "openid")
    private String openId;

    @JsonProperty(value = "appid")
    @JSONField(name = "appid")
    private String appId;

    @JsonProperty(value = "union_id")
    private String unionId;

    @JsonProperty(value = "alipay_user_id")
    @JSONField(name = "alipay_user_id")
    private String alipayUserId;

    private String memberNo;

    private List<String> address;

    @JsonProperty(value = "employeeID")
    @JSONField(name = "employeeID")
    private String employeeId;

    @JsonProperty(value = "employee_status")
    @JSONField(name = "employee_status")
    private Integer employeeStatus;

    @JsonProperty(value = "mtype")
    @JSONField(name = "mtype")
    private Integer memberType;

    private String birthday;

    private String department;

    private String position;

    @JsonProperty(value = "institut_name")
    @JSONField(name = "institut_name")
    private String instituteName;

    @JsonProperty(value = "institutID")
    @JSONField(name = "institutID")
    private String instituteId;

    @Valid
    @JsonProperty(value = "field_val_list")
    @JSONField(name = "field_val_list")
    private List<HttpMemberFieldParam> fieldValues;

    private String userId;

    private Integer age;

    @Valid
    @JsonProperty(value = "labels")
    @JSONField(name = "labels")
    private List<HttpMemberLabelParam> labels;

    @JsonProperty(value = "out_no")
    @JSONField(name = "out_no")
    private String outNo;
}
